Skip to content

chore: release main - #1

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main
Open

chore: release main#1
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

🤖 I have created a release beep boop

native: 0.15.0

0.15.0 (2026-08-14)

⚠ BREAKING CHANGES

  • renderer: TextureBridge.dispose() now destroys the offscreen window synchronously instead of close()ing it. Consequences: the render window's close event and the page's beforeunload/unload no longer fire (closed still fires); 'disposed' listeners must not touch bridge.renderWindow.webContents (already destroyed); a leftover external renderWindow.destroy() workaround called after dispose() can throw — remove it, or guard it with isDestroyed(), or call it before dispose().
  • The native TextureReceiver.startListening(callback) API is removed. Frame reception now always goes through JS-driven setInterval polling via receiveFrame(), matching the semantics the macOS path already used.

Features

  • add release-please CI pipeline with prebuilt Syphon/Spout distribution (2c638da)
  • add renderer package with high-level createTextureBridge API (8d44863)
  • add TextureReceiver and listSenders API for Syphon/Spout (#13) (9bbfb54)
  • add zero-copy GPU shared-texture receiver (macOS) (1f37662)
  • add zero-copy GPU shared-texture receiver (macOS) (f5d60aa)
  • add zero-copy GPU shared-texture receiver (Windows) (2d1ad79)
  • add zero-copy GPU shared-texture receiver (Windows) (7909b5f)
  • convert to pnpm monorepo with scoped packages (17a9e0a)
  • example: receiver window uses zero-copy GPU path (e1a29fa)
  • explicit native disposal with Symbol.dispose support (#18) (e65509e)
  • migrate to @napolab/texture-bridge package scope (2f5d3e4)
  • native: add closeNativeHandle + fix disconnected/pixelFormat/metal leaks (f4b0ef8)
  • native: implement macOS IOSurface path for receiveSharedTexture (8cf7e1a)
  • receiver: make macOS Y-flip opt-out via flipY option (5ac4e2b)
  • receiver: make macOS Y-flip opt-out via flipY option (1849229)
  • spout: event-driven receiver via native thread (aa24f9e)
  • spout: event-driven receiver via native thread + ThreadsafeFunction (70fbe9e)
  • syphon: event-driven receiver via native listener thread (be34204)
  • syphon: event-driven receiver via native listener thread (358fb41)
  • syphon: event-driven receiver with vertical flip fix (2d62f02)
  • unify receiver to JS-driven polling, remove startListening (4daa304)

Bug Fixes

  • add repository field for npm provenance verification (32da705)
  • align napi binaryName with .node filename for CI artifacts (92756b1)
  • ci: use stub module for native package in vitest (86eccfa)
  • guard against undefined textureInfo in paint event (#10) (f9f20e4)
  • native: add rpath for CARGO_BUILD_TARGET cross-compile test binaries (#16) (571498c)
  • native: address receiver review feedback (71fbfe4)
  • native: document drop-latest backpressure in start_listening (180d244)
  • native: document drop-latest backpressure in start_listening (961caf9)
  • native: rewrite Windows receiver without SpoutDX (e1a29fa)
  • preserve Spout2 SDK directory structure for relative includes (3283aa8)
  • remove optionalDependencies from source to fix CI lockfile mismatch (bcab69d)
  • renderer: surface dispose() teardown semantics in release notes (e6fc292)
  • replace unused prepublish script with create-npm-dir (8f6801f)
  • spout: fix ReceiveImage API misuse and cache receiver buffer (a0efd77)
  • spout: fix receiver never delivering frames on Windows (a595b43)
  • spout: format Rust code with cargo fmt (3f3af54)
  • spout: format Rust code with cargo fmt (0f31e66)
  • spout: remove duplicate return code comments in receiver bridge (919c6f1)
  • spout: use bounded tsfn queue for drop-latest semantics (aee9271)
  • spout: use bounded tsfn queue for drop-latest semantics (a442111)
  • spout: use DXGI_FORMAT for ReceiveImage instead of GL_RGBA (0a91a4a)
  • spout: use ReceiveImage() for CPU pixel readback (d290981)
  • spout: use ReceiveTexture() + GetSenderTexture() pattern (5ed3382)
  • syphon: correct color and orientation in sender/receiver (882c87d)
  • syphon: correct pixel format detection, color swap, and vertical flip in sender/receiver (041de0c)
  • syphon: set flipped:YES for correct vertical orientation in Syphon output (83cf3f6)
  • use napi triples config and create-npm-dir for CI artifacts (e39e8e2)
  • win: match Spout devices to texture adapters (db1f613)

Performance Improvements

  • native: cache shared NT handle, use DuplicateHandle per frame (win) (bf1ea0e)
  • syphon: skip redundant GPU readback + reuse staging buffer (e405761)
core: 0.15.0

0.15.0 (2026-08-14)

⚠ BREAKING CHANGES

  • renderer: TextureBridge.dispose() now destroys the offscreen window synchronously instead of close()ing it. Consequences: the render window's close event and the page's beforeunload/unload no longer fire (closed still fires); 'disposed' listeners must not touch bridge.renderWindow.webContents (already destroyed); a leftover external renderWindow.destroy() workaround called after dispose() can throw — remove it, or guard it with isDestroyed(), or call it before dispose().

Features

  • add renderer package with high-level createTextureBridge API (8d44863)
  • add TextureReceiver and listSenders API for Syphon/Spout (#13) (9bbfb54)
  • add zero-copy GPU shared-texture receiver (Windows) (2d1ad79)
  • add zero-copy GPU shared-texture receiver (Windows) (7909b5f)
  • convert to pnpm monorepo with scoped packages (17a9e0a)
  • core: forwardSharedTexture primitive on a new electron subpath (bb8a172)
  • core: re-export closeNativeHandle from native (5bf928d)
  • core: return PaintDefect from sendTextureFromPaintEvent instead of silent drop (f89fd74)
  • core: wrap native send failures in TextureSendError (c4eef46)
  • DI seam (createTextureBridgeWith) + synchronous dispose + package docs (cca64cd)
  • explicit native disposal with Symbol.dispose support (#18) (e65509e)
  • forwardSharedTexture / forwardFrames zero-copy monitors + Multi-Receiver Grid example (7696926)
  • make silent paint drops observable (frameDropped) + guard ESM __dirname shim (06677e1)
  • migrate to @napolab/texture-bridge package scope (2f5d3e4)
  • spout: event-driven receiver via native thread (aa24f9e)

Bug Fixes

  • add repository field for npm provenance verification (32da705)
  • ci: use stub module for native package in vitest (86eccfa)
  • core: harden electron-free guard against subpath specifiers and chunk splitting (6cba3f3)
  • core: harden electron-free guard, preserve error cause, dedupe deliver (8f924cf)
  • core: require both subpath artifacts, document sendImportedTexture, pin regex negatives (1f0560d)
  • guard against undefined textureInfo in paint event (#10) (f9f20e4)
  • harden forwardFrames/forwardSharedTexture and the multiviewer example (code-review max findings) (4880ea0)
  • renderer: harden frameDropped edge cases from final review (12cca63)
  • renderer: surface dispose() teardown semantics in release notes (e6fc292)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @napolab/texture-bridge bumped to 0.15.0
renderer: 0.15.0

0.15.0 (2026-08-14)

⚠ BREAKING CHANGES

  • renderer: TextureBridge.dispose() now destroys the offscreen window synchronously instead of close()ing it. Consequences: the render window's close event and the page's beforeunload/unload no longer fire (closed still fires); 'disposed' listeners must not touch bridge.renderWindow.webContents (already destroyed); a leftover external renderWindow.destroy() workaround called after dispose() can throw — remove it, or guard it with isDestroyed(), or call it before dispose().
  • The native TextureReceiver.startListening(callback) API is removed. Frame reception now always goes through JS-driven setInterval polling via receiveFrame(), matching the semantics the macOS path already used.

Features

  • add renderer package with high-level createTextureBridge API (8d44863)
  • add TextureReceiver and listSenders API for Syphon/Spout (#13) (9bbfb54)
  • add zero-copy GPU shared-texture receiver (Windows) (2d1ad79)
  • add zero-copy GPU shared-texture receiver (Windows) (7909b5f)
  • DI seam (createTextureBridgeWith) + synchronous dispose + package docs (cca64cd)
  • example: add Flip Y checkbox + bridge.setFlipY live toggle (7bc47ab)
  • explicit native disposal with Symbol.dispose support (#18) (e65509e)
  • forwardSharedTexture / forwardFrames zero-copy monitors + Multi-Receiver Grid example (7696926)
  • make silent paint drops observable (frameDropped) + guard ESM __dirname shim (06677e1)
  • migrate to @napolab/texture-bridge package scope (2f5d3e4)
  • receiver: make macOS Y-flip opt-out via flipY option (5ac4e2b)
  • receiver: make macOS Y-flip opt-out via flipY option (1849229)
  • renderer: add includeAlpha option to forward alpha into shared texture (a675d53)
  • renderer: add OSR scale policy resolvers for Electron 41+ deviceScaleFactor (557a35f)
  • renderer: add transparent mode to forward alpha into shared texture (c7f98fe)
  • renderer: apply OSR scale policy to window sizing and resize (a9d44db)
  • renderer: emit frameDropped event for silently dropped paint frames (9e74900)
  • renderer: expose createTextureBridgeWith dependency-injection seam (770d223)
  • renderer: expose droppedReason and harden frameDropped test coverage (7187bb3)
  • renderer: pin offscreen.deviceScaleFactor=1 under unit-scale policy (2ca1c92)
  • renderer: pixelExact option for DPR-independent framebuffer (8ba39af)
  • renderer: pixelExact option for DPR-independent framebuffer (ee1a314)
  • renderer: re-export TextureSendError and document the new throw contract (275124a)
  • renderer: TextureBridge.forwardFrames zero-copy monitor driver (66c9d13)
  • spout: event-driven receiver via native thread (aa24f9e)
  • spout: event-driven receiver via native thread + ThreadsafeFunction (70fbe9e)
  • syphon: event-driven receiver via native listener thread (be34204)
  • syphon: event-driven receiver via native listener thread (358fb41)
  • unify receiver to JS-driven polling, remove startListening (4daa304)
  • version-aware OSR scale policy (pin deviceScaleFactor on Electron 41+) (04dfe8a)

Bug Fixes

  • add repository field for npm provenance verification (32da705)
  • ci: use stub module for native package in vitest (86eccfa)
  • consumer: release handler closure on dispose to avoid GC retention (8a65eeb)
  • core: harden electron-free guard, preserve error cause, dedupe deliver (8f924cf)
  • guard against undefined textureInfo in paint event (#10) (f9f20e4)
  • harden forwardFrames/forwardSharedTexture and the multiviewer example (code-review max findings) (4880ea0)
  • renderer: address shared-texture-receiver review feedback (8546105)
  • renderer: close native handle leaks + harden consumer/dispatcher/bridge (1b7b7ec)
  • renderer: count _send() errors toward circuit breaker (82ad3c4)
  • renderer: defer imported.release() to avoid renderer tracker race (a955fea)
  • renderer: defer imported.release() to avoid renderer tracker race (7242ec9)
  • renderer: destroy the offscreen window synchronously in dispose() (9403e2a)
  • renderer: ESM __dirname shim + docs feedback (EN/JA) (8c06ba6)
  • renderer: guard forwardFrames against post-dispose registration and dead targets (4440eed)
  • renderer: harden frameDropped edge cases from final review (12cca63)
  • renderer: inject __dirname shim into ESM build for preview assets (df76799)
  • renderer: keep preview sendFrame best-effort and cover PreviewManager (3f4fb50)
  • renderer: make frame forwards independent of the native send path (d0c7186)
  • renderer: surface dispose() teardown semantics in release notes (e6fc292)
  • renderer: unhook destroyed listeners on dispose and reject destroyed targets (17e5fb4)
  • spout: fix receiver never delivering frames on Windows (a595b43)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @napolab/texture-bridge-core bumped to 0.15.0

This PR was generated with Release Please. See documentation.

@github-actions
github-actions Bot force-pushed the release-please--branches--main branch from 6a9ca57 to ca67e55 Compare July 29, 2026 02:26
@github-actions
github-actions Bot force-pushed the release-please--branches--main branch from ca67e55 to 83b90f9 Compare August 14, 2026 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants